/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.minicurso.controle;

import br.com.mayco.controller.CrudBean;
import br.com.minicurso.model.Usuario;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author Mayco Lucian
 */
@ManagedBean(name = "usuarioBean")
@SessionScoped
public class UsuarioBean extends CrudBean<Usuario> {

    private String login;
    private String senha;
    private Boolean autenticado;
    private Boolean administrador;
    private String tipoUsuario;
    private String nomeUsuario;
    private Integer id;
    Usuario usuario;

    public UsuarioBean() {
        super(Usuario.class);
        setPageInsert("/usuario/adicionar?faces-redirect=true");
        setPageView("/usuario/index?faces-redirect=true");
    }

    public String visualizar() {
        return "/usuario/index?faces-redirect=true";
    }

    public String voltar() {
        return "/menu/index?faces-redirect=true";
    }

    public String sair() {
        autenticado = false;
        administrador = false;
        nomeUsuario = null;
        senha = null;
        id = 0;
        tipoUsuario = null;
        return "/index?faces-redirect=true";
    }

    //<editor-fold defaultstate="collapsed" desc="get/set">
    public String getTipoUsuario() {
        return tipoUsuario;
    }

    public void setTipoUsuario(String tipoUsuario) {
        this.tipoUsuario = tipoUsuario;
    }

    public String getLogin() {
        return login;
    }

    /**
     * @param login the login to set
     */
    public void setLogin(String login) {
        this.login = login;
    }

    /**
     * @return the senha
     */
    public String getSenha() {
        return senha;
    }

    /**
     * @param senha the senha to set
     */
    public void setSenha(String senha) {
        this.senha = senha;
    }

    public Boolean getAutenticado() {
        return autenticado;
    }

    /**
     * @param autenticado the autenticado to set
     */
    public void setAutenticado(Boolean autenticado) {
        this.autenticado = autenticado;
    }

    public Boolean getAdministrador() {
        return administrador;
    }

    /**
     * @param administrador the autenticado to set
     */
    public void setAdministrador(Boolean administrador) {
        this.administrador = administrador;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNomeUsuario() {
        return nomeUsuario;
    }

    public void setNomeUsuario(String nomeUsuario) {
        this.nomeUsuario = nomeUsuario;
    }
    //</editor-fold>

    //<editor-fold defaultstate="collapsed" desc="verifica os logins">
    public String login() {
        usuario = new Usuario();

        Usuario usuario_logado = usuario.autenticacao_sistema(login, senha); //pega o login e a senha digitada pelo usuario e armazena em um objeto do tipo usuario
        if (usuario_logado == null) { //senha login não corresponderem
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "login", "usuário ou senha incorretos"));
            return null; //retorna na mesma página
        } else { //caso senha e login conferem sistema loga para a página de menu.
            if (usuario_logado.getTipoUsuario().equals("ADM")) { //verifica se o usuario é administrador
                autenticado = true;
                administrador = true;
                nomeUsuario = usuario_logado.getNome();
                //id = usuario_logado.getId();
                //doc.setUsuarioId(id);
                tipoUsuario = "Administrador";
                return "/menu/index";
            } else if (usuario_logado.getTipoUsuario().equals("responsavel")) {
                autenticado = true;
                administrador = false;
                nomeUsuario = usuario_logado.getNome();
                //id = usuario_logado.getId();
                //doc.setUsuarioId(id);
                tipoUsuario = "Responsavel";
                return "/menu/index";
            } else {
                autenticado = false;
                administrador = false;
                nomeUsuario = null;
                return "/menu/index";
            }
        }
    }//fim método login
    //</editor-fold>
}
